package com.zhike.common.model;

import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

@TableName("zhike_big_files")
@Data
public class BigFiles implements Serializable {
  private static final long serialVersionUID = 1L;

  @TableId(value = "resource_id", type = IdType.AUTO)
  private Integer resourceId;

  // 0 大文件。
  private Integer resType;

  // 对于本表而言，相同的文件不同的文件名永远只有最近一条，所以本表中的文件名只是作为记录，而并不一定对应于用户发消息时的文件名哦（详见表中说明）。
  private String resFileName;

  private String resHumanSize;

  private BigDecimal resSize;

  // 注意：请确保存库的md5码全为小写字段形式。
  private String resMd5;

  /**
   * 目前APP里的实现：在客户端有缓存的情况下，是不会下载的，所以只在首次查看该相片时才+1，此值也可???理解为被下载了多少次。
   */
  private Integer downloadCount;

  private Date createTime;

  /**
   * 相同的md5码文件表示是同一个文件，服务端不需要重复存储，节省存储空间。
   * 那么本字段存放的就是首次上传者的uid。
   */
  private Integer createUserUid;

  private Date updateTime;

  private Integer updateUserId;

  /**
   * 常量定义：
   * 0 正常；
   * 1 已被转储（被转储的文件可能是删除或转到别的存档目录了，用户就下载不到了，相当于微信里的“文件已失效”这种情况）。
   */
  private Integer fileStatus;
}
